Storage device and data management method of storage device

ABSTRACT

A storage device including a flash memory, and circuitry that manages a logical address and a physical address so as to be converted using a conversion table, writes a logical address and old and new information indicating a timing when the data is written, into the physical address together with the data, writes at least latest old and new information of the old and new information written in the block into a predetermined page of the block, and reestablishes the conversion table by arranging the logical address recorded in each page included in the block and the physical address corresponding to the logical address in association with each other, in chronological order of the latest old and new information read out from each block of the flash memory, at a predetermined reestablishment timing for performing reestablishment of the conversion table.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority from Japanese Patent Application No.2017-112177, filed on Jun. 7, 2017, the entire subject matter of whichis incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to data management in a storage deviceusing a flash memory.

BACKGROUND

In recent years, a capacity of a semiconductor storage device using aflash memory has been increased. The flash memory is used for a memorycard and a USB memory and is also used instead of a magneticrecording-type storage device such as a hard disk drive. Usually, datais stored into the storage device by a file system, which is provided byan OS (abbreviation of Operation System) or a dedicated application. Inorder to convert a logical address that is treated by the file systeminto a physical address of the flash memory in which data is actuallystored, a conversion table in which both addresses are associated witheach other is used. Therefore, when a file application table or thelike, which is an example of the conversion table, is damaged due to anyreason, even though the data remains in the flash memory, the filesystem may not read out stored contents thereof.

For this reason, in the related art, the logical address is storedtogether with the data so that the data saved in the storage device canbe read out even though the conversion table, in which the logicaladdress and the physical address are associated with each other, isdamaged. By doing so, even though the conversion table is damaged, aregion in which the data is stored is read out, so that it is possibleto obtain the logical address of the data and to thus reestablish thedata (refer to Patent Documents 1 and 2).

Also, in the flash memory, when correcting the data, corrected data iswritten in a new region (a different block or a different page in theflash memory), instead of being overwritten in the same region as thedata before correction. For this reason, the data corresponding to thesame logical address is stored in a plurality of regions in the flashmemory. Therefore, in JP-A-H11-85589, a sequence number, which isupdated whenever writing into a new block is performed, is recordedtogether with the data. By doing so, when there are blocks having thesame logical address recorded therein, the sequence numbers recorded inboth the blocks are compared and the block having a new sequence numberis registered in the table in which the logical address and the physicaladdress are associated with each other, so that the data isreestablished. Also in JP-A-2008-146255, the similar processing isperformed by using a cycle counter.

However, according to the above technology, it is necessary to read outthe entire data so as to reestablish the stored data, so that a longtime is needed for the reestablishment. Further, according to thetechnology disclosed in Patent Document 1, it is necessary to read outthe data of the entire blocks so as to determine whether the samelogical address as the logical address read out from any block isrecorded in other blocks. Also, according to the technology disclosed inPatent Document 2, since the cycle counter is incremented for the firsttime at a point of time at which the writing into all the blocks iscompleted, a problem having occurred before the writing into the entireblocks is completed may cause a trouble in the reestablishment of thedata.

SUMMARY

According to one illustrative aspect of the disclosure, there may beprovided a storage device configured to be accessed using a logicaladdress by a host device, the storage device comprising: a flash memoryconfigured to erase data stored as a non-volatile data block by block,the block comprising a plurality of pages, and to write or read out thedata page by page; and circuitry configured to: manage a logical addresscorresponding to the data to be written page by page into the flashmemory and a physical address to be managed in association with theblock and the page so that the logical address and the physical addresscan be converted using a conversion table, the data being written intothe physical address; when writing the data into a predeterminedphysical address of the flash memory, write a logical address, which isto be stored in the conversion table in association with the physicaladdress, and old and new information, which indicates a timing when thedata is written, into the physical address allotted page by pagetogether with the data; when writing into the plurality of pagesallotted to the block is completed, write at least latest old and newinformation of the old and new information written in the block into apredetermined page of the block; and reestablish the conversion table byarranging the logical address recorded in each page included in theblock and the physical address corresponding to the logical address inassociation with each other, in order from the block in which the latestold and new information read out from each block of the flash memoryindicates a first timing at which the data was written to the block inwhich the latest old and new information indicates a second timing atwhich the data was written, the second timing being newer than the firsttiming, at a predetermined reestablishment timing for reestablishing ofthe conversion table.

The above storage device is configured to read out the latest old andnew information from each block of the flash memory, to read out thelogical address registered in each page included in each block inchronological order of the latest old and new information of each block,and to arrange the physical address corresponding to the logical addressin accordance with the logical address at the reestablishment timing,thereby reestablishing the conversion table. Accordingly, it is possibleto easily reestablish the conversion table with the simple processing.In the meantime, when the storage device is used for the first time,whenever data is recorded in the flash memory, a correspondence relationbetween the logical address and the physical address is recorded, sothat the conversion table is gradually prepared. In the specification,the configuration of constituting the conversion table each time thedata is written is referred to as ‘preparing the conversion table’. Inthe meantime, the reestablishment of the conversion table meanspreparing the conversion table from the data recorded in the flashmemory.

According to another illustrative aspect of the disclosure, a storagedevice configured to be accessed using a logical address by a hostdevice, the storage device comprising: a flash memory configured toerase data stored as a non-volatile data block by block, the blockcomprising a plurality of pages, and to write or read out the data pageby page; and circuitry configured to: manage a logical addresscorresponding to the data to be written page by page into the flashmemory, a physical address to be managed in association with the blockand the page, and old and new information, which indicates a timing whenthe data is written, by using a conversion table, the data being writteninto the physical address; when writing the data into a predeterminedphysical address of the flash memory, write a logical address, which isto be stored in the conversion table in association with the physicaladdress, and the old and new information, which is to be stored in theconversion table, into the physical address together with the data; wheninactivating the storage device, record the conversion table into apredetermined region of the flash memory; and when it is not determinedthat the conversion table recorded in the predetermined region of theflash memory is normal, compare the old and new information, which isrecorded page by page or block by block in the flash memory andcorresponds to each logical address, and the old and new information,which is included in the conversion table recorded in the flash memoryand corresponds to each logical address, and reestablish the conversiontable.

When it is not determined that the conversion table recorded in thepredetermined region of the flash memory is normal, the storage devicecompares the old and new information of each logical address recordedpage by page or block by block in the flash memory and the old and newinformation of each logical address of the conversion table recorded inthe flash memory, thereby reestablishing the conversion table.Accordingly, even when the same logical address is recorded in plural,it is possible to correctly and easily reestablish the conversion tableby using the old and new information.

The present disclosure is not limited to the above aspects, and can beimplemented in a variety of aspects such as a configuration where astorage device is integrally incorporated in a computer apparatus or adata management method in a storage device using a flash memory.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic configuration view of an SSD of an illustrativeembodiment;

FIG. 2 illustrates a flow of writing and reading data to and from theSSD;

FIG. 3 is a flowchart depicting a file writing processing routine in theSSD of a first illustrative embodiment;

FIG. 4 illustrates a memory configuration in a flash memory;

FIG. 5 illustrates an example of a conversion table CT;

FIG. 6 is a flowchart depicting a conversion table reestablishmentprocessing routine;

FIG. 7 illustrates an aspect of generating a sorted work table WTS frominformation in the flash memory;

FIG. 8 is a flowchart depicting of main parts of a file writingprocessing routine of a second illustrative embodiment;

FIG. 9 illustrates a conversion table CT of the second illustrativeembodiment;

FIG. 10 illustrates an example of data in blocks B5 and B12;

FIG. 11 is a flowchart depicting a conversion table save processingroutine;

FIG. 12 is a flowchart depicting an activation processing routine;

FIG. 13 is a flowchart depicting a conversion table reestablishmentprocessing; and

FIG. 14 illustrates a save aspect of data in another illustrativeembodiment.

DETAILED DESCRIPTION A. First Illustrative Embodiment

A schematic configuration of a storage device 30 that is connected to ahost device 20 such as a computer and is treated as one of externalstorage devices from the host device 20 is shown in FIG. 1. The storagedevice 30 is a so-called solid state device (hereinafter, referred to as‘SSD’). The host device 20 can save data in the SSD by using a filesystem, like a hard disk drive and the like.

As shown, the storage device 30 includes a controller 40 configured tocontrol entire processing of the storage device 30, a RAM (abbreviationof Random Access Memory) 50 configured to temporarily store thereindata, and a large-capacity non-volatile flash memory 60 configured tostore therein data. The controller 40 includes a CPU 41 configured toexecute a program embedded therein, a serial I/O (hereinafter, simplyreferred to as ‘SI/O’) 43 configured to transmit and receive informationto and from the host device 20 via serial communication, a RAM interface(hereinafter, simply referred to as ‘RAM I/F’) 45 configured to transmitand receive data to and from the RAM 50, and a flash interface(hereinafter, simply referred to as ‘flash I/F’) 46 configured totransmit and receive data to and from the flash memory 60.

The storage device 30 is configured to operate as an external storagedevice of the host device 20. An outline of the operation is pictoriallyshown in FIG. 2. An application program in the host device 20 operatesusing an OS. The application program is configured to store data in afile format in the external storage device or to read out data from theexternal storage device by using a standard file system of the OS. Thefile system is configured to manage a file by a logical address.However, actual data is written in a specific page of a specific blockin the flash memory 60. An address specified by the block or page of theflash memory 60 is a physical address. The controller 40 has aconversion table CT for converting the logical address and the physicaladdress each other, and is configured to manage a save area of data bythe conversion table CT. The conversion table CT operates on the RAM 50while the storage device 30 is mounted and used, and is saved in apredetermined region of the flash memory 60 of the storage device 30when the storage device 30 is inactivated. The storage device 30 isinactivated by ending the use of the storage device 30, for example. Theending of the use means unmounting of the storage device 30 when a powersupply is turned off, for example. Upon activation of the storage device30, the conversion table CT is read from the flash memory 60 into theRAM 50 and operates.

The controller 40 includes a managing unit 31 configured to convert thelogical address and the physical address each other by referring to theconversion table CT, a data writing unit 32 configured to write data ina predetermined block and a predetermined page of the flash memory 60,an old and new information writing unit 33 configured to write, in apredetermined page of a block, latest old and new information of atleast old and new information written in blocks upon completion ofwriting into a plurality of pages prepared in one block, areestablishment unit 35 configured to reestablish the conversion tableCT in case that the conversion table CT is damaged, and the like. Therespective units may be implemented by hardware. However, in the firstillustrative embodiment, the CPU 41 of the controller 40 executes aprogram embedded therein, so that processing of each unit isimplemented. The processing in accordance with the program will bedescribed in detail later.

An outline of a file writing routine that is to be executed by the CPU41 of the controller 40 is described with reference to a flowchart ofFIG. 3. The actual storage device 30 is configured to perform processingof equalizing a use frequency of each block so as to improve durabilityof the flash memory 60, for example. Since the processing is well known,the description thereof is omitted.

When a writing instruction of a predetermined file is received via thefile system, the CPU 41 executes processing shown in FIG. 3. When theprocessing starts, the CPU 41 first determines a logical address that isused so as to write a file of a file size V (step S80). The reason isthat although data is written and read out into and from the storagedevice 30 by using a physical address, the file system is configured tomanage the writing and readout of the data by a logical address.

In step S80, when a logical address that is used so as to write the fileis determined, the CPU 41 searches for a physical space for writing thedata of the file size V (step S81). As shown in FIG. 4, the flash memory60 of the first illustrative embodiment allots 512 pages of page 1 topage 512, each of which is a writing unit of data, to one block. Eachpage has a size of about 20K bytes, and 16K bytes thereof are dividedinto 4K bytes×4 parts, and are managed as a data part for saving data. Aresidual part of each page, i.e., the remaining 4K bytes are treated asa redundant part, and are used so as to store a checksum, anerror-correcting code (ECC) and the like, for example. In the firstillustrative embodiment, logical addresses and old and new informationare further saved in the redundant part. The old and new information isa value of several tens of bits, and is a value that is monotonicallyincreased (here, incremented by a value 1) whenever writing is performedpage by page in the flash memory 60 after the use of the storage device30 starts. That is, the old and new information is a value meaningwhether the writing is old or new. A function and treatment of the oldand new information will be described in detail later.

The block and page of the flash memory 60 shown in FIG. 4, which areused, are recorded in the conversion table CT. For this reason, the CPU41 determines whether there is a space, in which the data of the filesize V can be written, in a page and the like in which data has not beenwritten yet by referring to the conversion table CT (step S82). When itis determined that there is the space, the CPU 41 increments the old andnew information NW (step S83). Also, the CPU 41 writes the data in aphysical address indicative of a region of the space, together with thelogical address LAD and the old and new information NW (step S84). Thisis processing in which the data (4K bytes×4) of FIG. 4, the logicaladdress LAD for each data of 4K bytes and the old and new information ofthe corresponding page are written page by page.

When the file size V is large, the entire data may not be written in oneblock. For this reason, the CPU 41 checks whether the writing has beencompleted in one block (step S85). Even though data is written up to oneprevious page (page 511, in the first illustrative embodiment) of afinal page of a block, when data to be written remains, it is assumedthat the writing has not been completed, and latest old and newinformation NBmx in the block is written in a last page (page 512) (stepS86). Then, the CPU 41 returns to step S84, and continues to write thefile. In the block, the data is written in order from a page of asmaller number. Therefore, the latest old and new information NBmx isthe same as the old and new information of page 511.

When the writing of the data of the file size V is completed in thisway, the CPU 41 updates the conversion table CT on the RAM 50 (stepS87). Here, the update of the conversion table CT means additionallyrecording a relation between the logical address and the physicaladdress of the newly written data. When the conversion table CT isupdated, the CPU 41 proceeds to “END”, so that this routine is finished.

An example of the conversion table CT is shown in FIG. 5. In thisexample, the physical address is simply displayed with respect to thelogical address LAD, and is shown only with a block and a page at whichwriting of data starts. A reference numeral CK indicates that datacorresponding to a logical address LADS, updated and written in any onepage (for example, one of pages P31 to P64) of a block B5 as an initialphysical address is written in a page P1 of a block B12. In this case,the pages P31 to P64 in which data is saved are excluded from theconversion table CT, and are separately managed as unusable pages.

On the other hand, when it is determined in step S82 there is no spacefor writing the data of the file size V, the CPU 41 performs garbagecollection (step S90). As described above, a page in which data isrewritten and is thus unusable is registered as an unusable page in theconversion table CT. Therefore, when there is no new space for writingdata, the CPU 41 performs the garbage collection so as to release theunusable page registered in the conversion table CT.

After preparing at least one spare block, the garbage collection isperformed by a series of processing of:

[1] copying only effective data to the spare block from a block(referred to as ‘erase block’) that is a target of the garbagecollection,

[2] erasing the erase block, block by block,

[3] registering a physical address of the original spare block in theconversion table CT, as a physical address of data registered in theerase block, and

[4] setting the original erase block, as a new spare block.

The CPU 41 repetitively executes the processing [1] to [4] for all theblocks in which there is a page registered as the unusable page, therebyreleasing the unusable page. In the meantime, since the unusable pageoccurs at diverse positions of 512 pages existing in the block, whencopying the data to the spare block, the data is written in order from aleading page. As a result, since a page number in which data is recordedis changed, a page number in the conversion table CT is also rewrittenupon the garbage collection.

After completing the garbage collection in this way (step S90), the CPU41 again checks whether there is a space for writing the data of thefile size V (step S91). When it is determined that the space is secured,the CPU 41 proceeds to step S83 and executes the processing andthereafter of incrementing the old and new information NW (steps S83 toS87). On the other hand, when a space for writing the data of the filesize V is not obtained even by the garbage collection, the CPU 41displays an error “The disc capacity is full” (step S92), proceeds to“END” and ends this routine.

As described above, the data writing into the storage device 30 isperformed using the logical address from the file system, and the datawriting into the flash memory 60 of the storage device 30 is performedusing the physical address having the block number and the page number.A correspondence relation between the logical address and the physicaladdress is managed by the conversion table CT. In addition to this, theflash memory 60 is written with the data and the logical address and oldand new information of the data, and when the data is written in all thepages (page 1 to page 511, here) of one block, the last page (page 512,here) is written with the latest old and new information NBmx saved inthe block thereof.

On the premise of the data writing using the file system, conversiontable reestablishment processing is performed. In the below, thisprocessing is described with reference to FIG. 6. As described above, ifthe conversion table CT is not provided, the file system cannot readdata from the storage device 30 by using a logical address. For thisreason, the conversion table CT saved in the RAM 50 is saved in apredetermined region of the flash memory 60 when unmounting the storagedevice 30. Then, when the storage device 30 is mounted, the conversiontable CT is read out and is saved in the RAM 50. However, a case where apower supply is abruptly interrupted before the storage device 30 isnormally unmounted and the conversion table CT saved in the RAM 50 isnot thus correctly saved in the predetermined region of the flash memory60 may occur. Therefore, in the first illustrative embodiment, theconversion table CT is reestablished each time the use of the storagedevice 30 starts. In the below, a method thereof is described.

The processing shown in a flowchart of FIG. 6 starts at a timing atwhich the use of the storage device 30 starts, for example, power issupplied to the storage device 30. First, the CPU 41 determines whetherthe latest old and new information NBmx of all the blocks has beenchecked (step S100). Since a result of the determination in step S100 is“NO” immediately after the processing starts, the CPU 41 proceeds tostep S110 and thereafter. In step S110, a final page of a target blockis read out. Here, the target block means a block that is a processingtarget when processing blocks in order from a first block B1 to a lastn^(th) block Bn.

Then, the CPU 41 determines whether the latest old and new informationNBmx has been already written in a final page (page 512, here) of theread target block (step S120). Since all data of a page, in which datahas not been written, has a value upon erasing (normally, a value 1), itis possible to easily determine whether the latest old and newinformation NBmx has been already written by contents of the final page.When it is determined that the latest old and new information NBmx hasbeen already written, each page of the target block is read in orderfrom a leading page (or from a last page), and the used last page issearched as a final page (step S130). When data has been written in thefinal page (step S140), the latest old and new information NBmx andblock number of the target block are stored in a work table WT (stepS150).

At this time, for a block in which the latest old and new informationNBmx has not been written in the final page (page 512, here), the oldand new information of the searched last page is set as the latest oldand new information NBmx. As shown in FIG. 4, in each block, data iswritten in order from a page of a smaller number. For this reason, whenthe page number is large, the old and new information also has a largevalue all the time. Therefore, the old and new information of the lastpage in which data is written may be treated as the latest old and newinformation NBmx of the corresponding block. On the other hand, when thefinal page is not searched in step S140, any processing is not performedbecause data has not been once saved in the target block. While theblock number indicative of the target block is incremented in order from1, the above processing is performed and the latest old and newinformation NBmx is saved in the work table WT.

FIG. 7 depicts an example where the work table WT is prepared from theold and new information in the flash memory 60. An upper part of FIG. 7indicates the block number and the latest old and new information NBmxin the flash memory 60, and a middle part indicates the prepared worktable WT. In FIG. 7, “N/A” indicates that data has not been once writtenin the corresponding block. Therefore, the latest old and newinformation NBmx is not read out from the corresponding block, and isnot registered in the work table WT.

When a result of the determination in step S140 is “NO” or after theprocessing of step S150 is finished, the processing proceeds to stepS100. Then, the processing of steps S110 to S150 is repetitivelyperformed for all the blocks. When the latest old and new informationNBmx has been checked for all the blocks (step S100: “YES”), processingof sorting the work table WT in accordance with the old and newinformation is performed (step S200). An example of a sorted work tableWTS obtained by the sorting is shown in a lower part of FIG. 7.

Subsequently, following processing is repetitively performed for all theblocks registered in the work table WTS by using the sorted work tableWTS (steps s210 to e210). In the processing to be repetitivelyperformed, a target block is first decided (step S220). That is, theblock number is read out in order from the upper in the sorted worktable WTS, and following processing is performed.

When the block number is decided, following processing is repetitivelyperformed from page 1 to a final page in the corresponding block (stepss310 to e310). In the processing to be repetitively performed, a logicaladdress is first read out from each page (step S320), the read logicaladdress and a physical address corresponding to the logical address arewritten in order of the logical address in the conversion table CT (stepS330). As a result, the physical addresses corresponding to the logicaladdresses are aligned in accordance with the logical address.

The above processing is repetitively performed for all the pages and forall the blocks. At this time, the processing is performed in order fromthe block of which the value of the latest old and new information NBmxis smaller (refer to FIG. 7 and the sorted work table WTS). For thisreason, even if a page having the same logical address is read out, thenewly read physical address may be overwritten on the logical addressand physical address read out already. Also, since data is written inorder from page 1 in the flash memory 60, the smaller the page numberis, each page in one block has the smaller old and new information.Therefore, when the processing is performed in order from page 1, eventhough the same logical address appears, if the newly read physicaladdress is overwritten on the logical address and physical address readout already, the data is rewritten by a combination of the correctlogical address and physical address.

The above processing is repetitively performed, so that the combinationsof the logical addresses and physical addresses read out from all thepages of all the blocks are recorded in the conversion table CT.Thereafter, the file system converts the logical address and thephysical address by using the conversion table CT saved in the RAM 50,so that it can write data configuring a file into the flash memory 60and read out the same from the flash memory 60.

According to the first illustrative embodiment as described above, whenrecording data in the storage device 30, the logical address and old andnew information of the data are recorded together with the data, and thelatest old and new information NBmx in each block is recorded in thefinal page of each block of the flash memory 60. Then, when the storagedevice 30 is mounted, the latest old and new information NBmx of eachblock is read out, and each block is aligned in order of the latest oldand new information NBmx. The combinations of the logical address andphysical address, which are read out in order from the block having thesmaller latest old and new information NBmx to the block having thelarger latest old and new information NBmx, configure the conversiontable CT. Since each block is aligned in accordance with the latest oldand new information NBmx, the combination of the logical address andphysical address simply recorded in each page has only to be recorded inorder of the logical address in the conversion table CT, so that theconversion table CT is configured in a short time.

Further, in the first illustrative embodiment, a table consisting of aset of the logical address and physical address, which has been used inthe related art, is used as the conversion table CT. Therefore, it isnot necessary to add special new information to the conversion table CT.

In the first illustrative embodiment, the conversion table CT isreestablished each time the use of the storage device 30 starts.However, the conversion table CT may be reestablished only when it isdetermined that the use of the storage device 30 is not normally ended.For example, a configuration may be adopted in which the conversiontable CT is saved in a system area of the flash memory 60 at anunmounting timing, for example, and then when the use of the storagedevice 30 starts, it is determined whether the conversion table CT savedin the system area is saved as the use of the storage device 30 isnormally ended, and the conversion table CT is reestablished only whenit is determined that the conversion table CT is not saved as the use ofthe storage device 30 is normally ended. In this case, when it isdetermined that the conversion table CT is saved as the use of thestorage device 30 is normally ended, the conversion table CT may be usedas it is without the processing of reestablishing the conversion tableCT. For example, when the use of the storage device 30 starts, datacorresponding of the use start is additionally recorded to an end of apredetermined area of the flash memory 60, and when the use of thestorage device 30 is ended, the conversion table CT is saved and thendata corresponding to the use ending is additionally recorded to the endof the predetermined area of the flash memory 60, so that it is possibleto determine whether the use of the storage device 30 is normally ended.That is, upon the activation, the data recorded in the end of thepredetermined area may be read out to determine whether the data is datacorresponding to the use start or data corresponding to the use ending.When the data is data corresponding to the use ending, since it isdetermined that the use of the storage device 30 is normally ended, therecorded conversion table CT may be used as it is. By the processing, itis possible to reduce the number of times of reestablishment of theconversion table CT.

B. Second Illustrative Embodiment

Subsequently, a second illustrative embodiment is described. The storagedevice 30 of the second illustrative embodiment has the same hardwareconfiguration as the storage device 30 of the first illustrativeembodiment, and is different from the first illustrative embodiment interms of the format of the conversion table and the processing ofreestablishing the conversion table. In the storage device 30 of thesecond illustrative embodiment, the processing of step S87 of the filewriting processing routine shown in FIG. 3 is different, and processingof step S99 is thereafter performed. The corresponding processing isshown in FIG. 8.

In the second illustrative embodiment, in the processing (FIG. 3) ofwriting the file data, after data is written in a predetermined physicaladdress, the conversion table CT is updated (step S87). However, at thattime, the old and new information is also saved, in addition to thecombination of the logical address and physical address. This example isshown in FIG. 9. In the second illustrative embodiment, in theconversion table CT, the old and new information is registered, inaddition to the logical address and the physical address (the blocknumber and the page number).

In the example of FIG. 9, a logical address LAD8 is updated, and datarecorded in page P4 of a block B5 is transferred to page P1 of a blockB12 and the old and new information is also updated by the update. Inthis case, the block B5 and the block B12 are shown in detail in FIG.10. As shown, in page P4 of the block B5, the logical address LAD8 and avalue 8, which is the old and new information, are written together withdata DATA4. Thereafter, when rewriting the data of the logical addressLAD8, it is not possible to rewrite the same only by a part of the datawritten in the flash memory 60. Therefore, the data DATA4 recorded tothe logical address LAD8 is saved in page P1 of the block B12 and avalue 154, which is new old and new information corresponding to thedata DATA4, is saved. As a result, the same logical address is recordedin a plurality of pages in the flash memory 60. Whether data written inany page of the plurality of pages is up to date is determined by acomparison result of the old and new information but cannot bedetermined only by the information of each page.

In the second illustrative embodiment, after the conversion table CT isupdated in step S87, the processing proceeds to step S99, so thatrepresentative old and new information NWa is updated. Therepresentative old and new information NWa means old and new informationhaving a maximum value through all the pages of all the blocks. As shownin step S83 of FIG. 3, since the old and new information is incrementedwhen writing data into the flash memory 60 page by page, therepresentative old and new information NWa is the same as the old andnew information when finally writing the data at that point of time. Asshown in FIG. 9, the old and new information (a value 1523, here)associated with a logical address LADn and a physical address (a blocknumber Bn and a page number Pn) at the time that data is finally writtenis written into a predetermined region of the conversion table CT, asthe representative old and new information NWa.

As described above, in the second illustrative embodiment, the old andnew information is stored in the conversion table CT in association withthe combination of the logical address and physical address, and therepresentative old and new information NWa is also stored. Also, in thesecond illustrative embodiment, as shown in FIG. 11, the conversiontable CT is saved in a predetermined region of the flash memory 60. Thatis, the CPU 41 of the controller 40 determines whether a save triggerhas occurred (step S410). For example, when a request “the storagedevice 30 is to be unmounted” occurs, the CPU 41 detects the request asthe save trigger and saves the conversion table CT in the system area ofthe flash memory 60 (step S420). In addition to this, the save triggermay occur every predetermined time or each time a predetermined capacityof data is saved. As a result, when the save trigger such as unmountingoccurs, the latest conversion table CT including the combinations of thelogical address and physical address shown in FIG. 9, the old and newinformation corresponding to the combinations and the representative oldand new information NWa is stored in the system area of the flash memory60.

The activation processing of the storage device 30 of the secondillustrative embodiment, which is operated on the premise of the aboveprocessing, is described with reference to FIG. 12. The storage device30 is activated when the power is supplied to the storage device 30,when the unmounted storage device 30 is mounted, and the like. First, itis determined whether the storage device 30 is activated as the power issupplied thereto (step S500). When it is determined that the storagedevice 30 is activated as the power is supplied thereto (step S500:“YES”), the latest conversion table CT is read out from the system areaof the flash memory 60 and is developed into the RAM 50 (step S510), andthen the processing proceeds to step S520. Otherwise, since theconversion table CT has been already developed into the RAM 50, theprocessing proceeds to step S520 without any processing.

In step S520, the representative old and new information NWa is acquiredfrom the conversion table CT developed in the RAM 50. Then, the maximumvalue of the latest old and new information NBmx saved in each block ofthe flash memory 60 is acquired as representative old and newinformation NWb stored in a user area of the flash memory 60. The latestold and new information NBmx has been described in detail in the firstillustrative embodiment.

Then, both the two representative old and new information NWa and NWbacquired as described above is compared (step S540). When it isdetermined that both the information is the same, it is determined thatthe conversion table CT is the latest table and there is no error in thecontents thereof, and this activation processing routine is finished.Thereafter, the reading and writing of data with respect to the filesystem is performed using the conversion table CT developed in the RAM50.

On the other hand, when it is determined that the two representative oldand new information NWa and NWb does not coincide with each other,processing of reestablishing the conversion table CT (step S600) isperformed. Here, as the case where both the information does notcoincide with each other, a case where the power supply to the storagedevice 30 is forcibly interrupted may be exemplified. In this case,since the conversion table CT being used is not saved in the system areaof the flash memory 60, inconsistency is caused in both the information.Therefore, in this case, it is necessary to reestablish the conversiontable CT. This is the reestablishment processing (step S600).

The reestablishment processing of the conversion table CT is shown inFIG. 13. When this processing starts, following processing (steps s610to e610) is repetitively performed for all the blocks in order fromblock 1. In this processing to be repetitively performed, latest old andnew information NTmx of a target block in the conversion table CT isfirst acquired (step S620). As exemplified in FIG. 9, the conversiontable CT is not integrated for each block but is stored in the RAM 50.For this reason, when the conversion table CT is searched, the old andnew data having the largest value, i.e., the latest old and new dataNTmx is easily specified from each block.

Then, processing of comparing the latest old and new information NTmx ofthe block obtained from the conversion table CT and the latest old andnew information NBmx saved in the final page of each block is performed(step S630). As a result of the comparison, when both the informationcoincides with each other, since it is determined that the combinationof the logical address and physical address relating to the target blockin the conversion table CT is up to date, the processing proceeds to anend of the processing to be repetitively performed without anyprocessing. When the processing for all the blocks is not finished, theprocessing of steps s610 to e610 is again executed for a next targetblock number.

On the other hand, when a result of the determination in step S630 is“NO”, since the latest old and new information NTmx stored in theconversion table CT and the latest old and new information NBmx recordedin the block are different from each other, it is determined that thereis an error in the contents of the conversion table CT relating to theblock. As a result, following processing (steps s710 to e710) isrepetitively performed in order from page 1 of the block.

In the processing to be repetitively performed, the old and newinformation NBm and a logical address LDA are first read out from atarget page in a target block of the flash memory 60 (step S720). Asexemplified in FIG. 4, the old and new information NBm and the logicaladdress LDA of each page are recorded in the redundant part of eachpage. Then, it is determined whether the read logical address LDA isrecorded in the conversion table CT (step S730). When it is determinedthat the read logical address LDA is not recorded in the conversiontable CT, the processing proceeds to update processing (step S750) ofthe conversion table CT. The update processing of step S750 will bedescribed later. On the other hand, when it is determined that the readlogical address LDA is included in the conversion table CT (step S730:“YES”), the old and new information is compared each other (step S740).Specifically, it is determined whether the old and new information NTmassociated with the logical address LDA stored in the conversion tableCT is the same as or larger than the old and new information NBm, whichhas read out from the target page in the target block together with thelogical address. When it is determined that the old and new informationNTm stored in the conversion table CT is a value equal to or larger thanthe old and new information NBm, it is determined that the informationin the conversion table CT is right, and any processing is not performed(step S740: “YES”). On the other hand, when the old and new informationNTm in the conversion table CT is smaller than the old and newinformation NBm (step S740: “NO”) or the read logical address LDA is notstored in the conversion table CT, as described above (step S730: “NO”),it is determined that the information in the conversion table CT is notnormal, and the conversion table CT is updated (step S750).

Here, the update processing (step S750) of the conversion table CT isperformed as follows.

(A) When the logical address LDA read out from the target page in thetarget block is not stored in the conversion table CT, the read logicaladdress and the physical address thereof are stored in the conversiontable CT in association with each other.

(B) When the old and new information NTm stored in the conversion tableCT is smaller than the old and new information NBm read out from thetarget page in the target block, it is determined that the old and newinformation in the conversion table CT is old and the old and newinformation recorded in the target page of the target block of the flashmemory 60 is right. Then, the physical address (the block number and thepage number) of the conversion table CT is rewritten by the actualphysical address (the block number and the page number) of the flashmemory 60 in which the old and new information NBm is recorded, and theold and new information NTm stored in the conversion table CT isreplaced with the old and new information NBm.

The above processing (steps s710 to e710) is sequentially repeated forall the pages of the target block. When the processing is executed forall the pages, the same processing is repetitively performed from a nexttarget block to a final block (steps s610 to e610).

In this way, in the second illustrative embodiment, when reestablishingthe conversion table CT, the above processing is repetitively performedfor all the pages of all the blocks. When it is determined in step S630that the latest old and new information NTmx stored in the conversiontable CT and the latest old and new information NBmx recorded in theblock of the flash memory 60 coincide with each other, the processingrelating to the pages included in the corresponding block is notperformed, so that the processing of reestablishing the conversion tableCT is finished in a short time.

Also, in the second illustrative embodiment, as shown in FIG. 12, uponthe activation of the storage device 30, it is determined whether therepresentative old and new information NWa of the conversion table CTand the representative old and new information NWb recorded in the flashmemory 60 coincide with each other. When it is determined that both theinformation coincides with each other, the reestablishment processing isnot performed. Therefore, it is not necessary to reestablish theconversion table CT each time the storage device 30 is activated.

C. Other Illustrative Embodiments

In the first and second illustrative embodiments, when reestablishingthe conversion table CT, the contents of each page in each block areread out, such as the repetitive execution of steps s310 to e310 of FIG.6 and the repetitive execution of steps s710 to e710 of FIG. 13.Therefore, when the writing is performed up to one previous page of thefinal page of each block, the data recorded in the redundant parts ofall the pages so far (page 1 to page 511, here) may be integrallywritten in the final page (page 512, here). This is shown in FIG. 14. Bydoing so, the information of the target block is collectively read outfrom the final page. In the meantime, the information to be recorded inthe final page may be all of the logical addresses and the old and newinformation recorded in the redundant parts or may be digest dataobtained by compressing the same. As the digest data, for example, data,which is recorded as formats of an initial value and a differentialvalue, may be used inasmuch as the logical addresses and the old and newinformation have continuous numbers.

In the respective illustrative embodiments, the value that issequentially incremented is used as the old and new information. Inanother illustrative embodiment, the old and new information may berecorded using system time. The system time is time that is alwayscounted without being reset in the host device to be used.Alternatively, a backup power supply may be provided in the storagedevice 30, a real time clock that is not to be reset may be mounted, andinformation of time that is to be generated from the real time clock maybe used as the old and new information.

In addition, the present disclosure can be implemented as follows. Inone aspect, the reestablishment unit 35 may be configured to read outthe old and new information written in a page included in a block, forwhich the writing by the old and new information writing unit 33 is notperformed, and to treat the latest old and new information of the readold and new information, as the latest old and new information relatingto the corresponding block.

Alternatively, the managing unit 31 may be provided with a conversiontable writing unit configured to record the conversion table CT in apredetermined region of the flash memory 60 at a timing including atiming at which the use of the storage device 30 is ended, and thereestablishment unit 35 may be configured to determine that it is areestablishment timing when it is not determined that the conversiontable CT recorded in the predetermined region of the flash memory 60 isnormal, and to reestablish the conversion table CT.

Also, in the second illustrative embodiment, a configuration is alsopossible in which at least upon the use start of the storage device 30,the newest old and new information NWa of the old and new information ofthe conversion table CT recorded in the flash memory 60 and the newestold and new information NWb of the old and new information recorded ineach page or each block of the flash memory 60 are compared and whenboth the old and new information does not coincide with each other, theconversion table CT is not determined as normal.

Also, the conversion table writing unit may be configured to record theconversion table CT in a predetermined region of the flash memory 60 ata predetermined timing during the use of the storage device 30, inaddition to a timing at which the use of the storage device 30 is ended.

Also, a collective writing unit that collectively writes the logicaladdress and the old and new information, which are written when data iswritten page by page, into a predetermined page of a block when datawriting into the flash memory 60 block by block is completed may beprovided, and the reestablishment unit 35 may be configured to read outthe collectively written logical address and old and new informationupon the reestablishment and to treat the same as the logical addressand old and new information recorded page by page or block by block inthe flash memory 60.

In addition, the conversion table writing unit may be configured torecord, as the representative old and new information, the newest oldand new information of all the old and new information stored in theconversion table CT into a predetermined region of the flash memory 60upon recording of the conversion table CT into the predetermined region,and the reestablishment unit 35 may be configured to read out and usethe representative old and new information recorded in the predeterminedregion, as the newest old and new information of the old and newinformation of the conversion table CT recorded in the flash memory 60,upon comparison of the old and new information.

In the above illustrative embodiments, the storage device 30 is treatedas the external storage device of the host device 20. However, thestorage device 30 may be integrally incorporated in a computer. Also,the storage device 30 may be used by a combination of a data logger, aportable phone, a digital camera and the like.

The first and second illustrative embodiments may be treated as animplementation of a data management method that is to be performed whena storage device having a flash memory, which is configured to erasedata stored as a non-volatile data block by block, the block having aplurality of pages, and can write and read out the data page by page, isaccessed from a host device by using a logical address.

What is claimed is:
 1. A storage device configured to be accessed usinga logical address by a host device, the storage device comprising: aflash memory configured to erase data stored as a non-volatile datablock by block, the block comprising a plurality of pages, and to writeor read out the data page by page; and circuitry configured to: manage alogical address corresponding to the data to be written page by pageinto the flash memory and a physical address to be managed inassociation with the block and the page so that the logical address andthe physical address can be converted using a conversion table, the databeing written into the physical address; when writing the data into apredetermined physical address of the flash memory, write a logicaladdress, which is to be stored in the conversion table in associationwith the physical address, and old and new information, which indicatesa timing when the data is written, into the physical address allottedpage by page together with the data; when writing into the plurality ofpages allotted to the block is completed, write at least latest old andnew information of the old and new information written into the blockinto a predetermined page of the block; and reestablish the conversiontable by arranging the logical address recorded in each page included inthe block and the physical address corresponding to the logical addressin association with each other, in order from the block in which thelatest old and new information read out from each block of the flashmemory indicates a first timing at which the data was written to theblock in which the latest old and new information indicates a secondtiming at which the data was written, the second timing being newer thanthe first timing, at a predetermined reestablishment timing forreestablishing of the conversion table.
 2. The storage device accordingto claim 1, wherein the circuitry is further configured to: read out,from the block for which writing has not been performed by thecircuitry, the old and new information written in the page included inthe block; and treat latest old and new information of the read old andnew information, as latest old and new information relating to theblock.
 3. The storage device according to claim 1, wherein the circuitryis further configured to record the conversion table into apredetermined region of the flash memory at a timing comprising a timingat which the storage device is inactivated, and when it is notdetermined that the conversion table recorded in the predeterminedregion of the flash memory is normal, the circuitry determines that itis the reestablishment timing, and reestablishes of the conversiontable.
 4. The storage device according to claim 2, wherein the circuitryis further configured to record the conversion table into apredetermined region of the flash memory at a timing comprising a timingat which the storage device is inactivated, and when it is notdetermined that the conversion table recorded in the predeterminedregion of the flash memory is normal, the circuitry determines that itis the reestablishment timing, and reestablishes of the conversiontable.
 5. The storage device according to claim 3, wherein the circuitryis further configured to record the conversion table into thepredetermined region of the flash memory at a predetermined timingduring use of the storage device, in addition to a timing at which thestorage device is inactivated.
 6. The storage device according to claim3, wherein the circuitry is further configured to: record, asrepresentative old and new information, latest old and new informationof all the old and new information stored in the conversion table into apredetermined region of the flash memory upon recording of theconversion table into the predetermined region of the flash memory; andread out and use, as latest old and new information, the representativeold and new information, which is recorded in the predetermined region,of the old and new information of the conversion table recorded in theflash memory, upon comparison of the old and new information.
 7. Thestorage device according to claim 1, wherein the circuitry is furtherconfigured to: collectively write the logical address and the old andnew information, which are written together with data written page bypage, into the predetermined page of the block when data writing intothe flash memory block by block is completed; and treat the logicaladdress and old and new information, which are collectively written inthe predetermined page of the block and are read out upon thereestablishment, as the logical address and old and new informationrecorded page by page or block by block in the flash memory.
 8. Acomputer apparatus having the storage device according to claim 1incorporated therein and configured to access data of the storage deviceby using the logical address.
 9. The storage device according to claim1, wherein when data to be written remains even though data is writtenup to one previous page of a final page of the plurality of pagesallotted to the block by the circuitry, the circuitry writes the latestold and new information in the block into the final page.
 10. Thestorage device according to claim 1, wherein the circuitry is furtherconfigured to treat old and new information of a final page in which thedata is written, as the latest old and new information of the block. 11.The storage device according to claim 1, wherein the reestablishment ofthe conversion table by the circuitry comprises: processing of readingout the logical address recorded in each page included in each block inorder from the block in which the latest old and new information readout from each block of the flash memory indicates the first timing tothe block in which the latest old and new information indicates thesecond timing; and processing of writing the read logical address in theconversion table in association with the physical address correspondingto the logical address, and when a page having the same logical addressas the logical address read out already is newly read out in theprocessing of reading out the logical address, the circuitry writes aphysical address corresponding to the newly read page over the physicaladdress aligned in association with the logical address read outalready.
 12. The storage device according to claim 1, wherein a valuethat is sequentially incremented whenever writing is performed is usedas the old and new information.
 13. The storage device according toclaim 1, wherein system time is used as the old and new information, thesystem time being time that is always counted without being reset in thehost device.
 14. A storage device configured to be accessed using alogical address by a host device, the storage device comprising: a flashmemory configured to erase data stored as a non-volatile data block byblock, the block comprising a plurality of pages, and to write or readout the data page by page; and circuitry configured to: manage a logicaladdress corresponding to the data to be written page by page into theflash memory, a physical address to be managed in association with theblock and the page, and old and new information, which indicates atiming when the data is written, by using a conversion table, the databeing written into the physical address; when writing the data into apredetermined physical address of the flash memory, write a logicaladdress, which is to be stored in the conversion table in associationwith the physical address, and the old and new information, which is tobe stored in the conversion table, into the physical address togetherwith the data; when inactivating the storage device, record theconversion table into a predetermined region of the flash memory; andwhen it is not determined that the conversion table recorded in thepredetermined region of the flash memory is normal, compare the old andnew information, which is recorded page by page or block by block in theflash memory and corresponds to each logical address, and the old andnew information, which is included in the conversion table recorded inthe flash memory and corresponds to each logical address, andreestablish the conversion table.
 15. The storage device according toclaim 14, wherein at least when the use of the storage device starts,latest old and new information of the old and new information includedin the conversion table recorded in the flash memory and latest old andnew information of the old and new information recorded in each page oreach block of the flash memory are compared, and when the two old andnew information does not coincide with each other, the conversion tableis not determined as normal.
 16. The storage device according to claim14, wherein the circuitry is further configured to record the conversiontable into the predetermined region of the flash memory at apredetermined timing during use of the storage device, in addition to atiming at which the storage device is inactivated.
 17. The storagedevice according to claim 14, wherein the circuitry is furtherconfigured to: record, as representative old and new information, latestold and new information of all the old and new information stored in theconversion table into the predetermined region of the flash memory uponrecording of the conversion table into the predetermined region; andread out and use, as latest old and new information, the representativeold and new information, which is recorded in the predetermined region,of the old and new information of the conversion table recorded in theflash memory, upon comparison of the old and new information.
 18. Thestorage device according to claim 14, wherein the circuitry is furtherconfigured to: collectively write the logical address and the old andnew information, which are written together with the data written pageby page, into the predetermined page of the block when data writing intothe flash memory block by block is completed, treat the logical addressand old and new information, which are collectively written in thepredetermined page of the block and are read out upon thereestablishment, as the logical address and old and new informationrecorded page by page or block by block in the flash memory.
 19. Acomputer apparatus having the storage device according to claim 14incorporated therein and configured to access data of the storage deviceby using the logical address.
 20. A data management method that is to beperformed when a storage device having a flash memory, which isconfigured to erase data stored as a non-volatile data block by block,the block having a plurality of pages, and to write or read out the datapage by page, is accessed from a host device by using a logical address,the data management method comprising: managing, using circuitry, alogical address corresponding to the data to be written page by pageinto the flash memory and a physical address to be managed inassociation with the block and the page so that the logical address andthe physical address can be converted using a conversion table, the databeing written into the physical address; when writing the data into apredetermined physical address of the flash memory, writing a logicaladdress, which is to be stored in the conversion table in associationwith the physical address, and old and new information, which indicatesa timing when the data is written, into the physical address allottedpage by page together with the data; when writing into the plurality ofpages allotted to the block is completed, writing at least latest oldand new information of the old and new information written in the blockinto a predetermined page of the block: and reestablishing theconversion table by arranging the logical address recorded in each pageincluded in the block and the physical address corresponding to thelogical address in association with each other, in order from the blockin which the latest old and new information read out from each block ofthe flash memory indicates a first timing at which the data was writtento the block to the block in which the latest old and new informationindicates a second timing at which the data was written, the secondtiming being newer than the first timing, at a predeterminedreestablishment timing for reestablishing of the conversion table.